package router

import (
	"gdshop-admin-go-api/library/tools/prometheusHelp"
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/net/ghttp"
	"github.com/gogf/gf/os/glog"
	"github.com/prometheus/client_golang/prometheus/promhttp"
)

var logger *glog.Logger

// 你可以将路由注册放到一个文件中管理，
// 也可以按照模块拆分到不同的文件中管理，
// 但统一都放到router目录下。
func init() {
	versionName := g.Cfg().GetString("site.ApiVersionName")
	defaultVersionName := g.Cfg().GetString("site.ApiDefaultVersionName")
	logger = g.Log()
	s := g.Server()
	s.Use(MiddlewareErrorHandler)

	s.Use(prometheusHelp.PromMiddleware(nil))
	s.BindHandler("/metrics", prometheusHelp.PromHandler(promhttp.Handler()))

	s.BindHandler("/", func(r *ghttp.Request) {
		r.Response.WriteExit("gdshop-admin API is OK")
	})

	regAdmin(s, versionName, defaultVersionName)
	regHome(s, versionName, defaultVersionName)
	regMember(s, versionName, defaultVersionName)
	regCategory(s, versionName, defaultVersionName)
	regArticle(s, versionName, defaultVersionName)
	regSlide(s, versionName, defaultVersionName)
	regGdshop(s, versionName, defaultVersionName)
	regLink(s, versionName, defaultVersionName)
}
